package com.fjwt.gz.core.model;

import com.fjwt.gz.core.constants.CS;
import lombok.Data;

/**
* DB的安全设置
*
* @author wg
* @site https://pt.jdyd.xyz/
* @date 2022/5/16 17:05
*/
@Data
public class DBsecurityConfig {

    /** HTTP传输应用层加密开关 */
    private Byte httpMessageEncryptFlag;

    /** 限制登录次数(xx分钟最多尝试xx次)(0表示不限制) */
    private LoginErrorLimit loginErrorMaxLimit;

    /** 密码规则 */
    private PasswordRegexp passwordRegexp;

    /** 密码有效期（天数） */
    private Integer passwordExpireDay;

    /** 密码有效期超期是否强制更改 */
    private Byte passwordExpiredMustModify;


    @Data
    public static class LoginErrorLimit{

        /** 限制x分钟 */
        private Long limitMinute;

        /** 最大尝试次数 */
        private Long errMax;

    }

    @Data
    public static class PasswordRegexp{

        /** 正则表达式 */
        private String regexpRules;

        /** 错误提示 */
        private String errTips;

    }

    @Data
    public static class SmsSendLimit{

        /** 限制x分钟 */
        private Long limitMinute;

        /** 最大尝试次数 */
        private Long sendMax;

        /** 限制x小时 */
        private Long limitHours;
        private Long daySendIpMax;
        private Long daySendPhoneMax;

    }

    @Data
    public class WxOfficalBo {

        /**
         * 秘钥
         **/
        private String appSecret;
        /**
         * 开发者微信号
         **/
        private String originalId;
        /**
         * 微信公众号消息加解密方式: 0 明文模式 1兼容模式  2安全模式
         **/
        private String encryptType;
        /**
         * 微信公众号令牌(Token)
         **/
        private String token;
        /**
         * 微信公众号消息加解密密钥
         **/
        private String aeskey;

        /**
         * 公众号素材图片id
         */
        private String thumbMediaId;
        /**
         * 名称
         */
        private String name;
    }

    public boolean httpMsgIsEncrypt(){

        if(httpMessageEncryptFlag != null && httpMessageEncryptFlag == CS.YES){
            return true;
        }

        return false;
    }

    public boolean passwordExpiredIsMustModify(){

        if(passwordExpiredMustModify != null && passwordExpiredMustModify == CS.YES){
            return true;
        }

        return false;
    }

}



